Most software version control systems provide mechanisms for branching into multiple lines of development and merging source code from one development line into another. However, the techniques, policies and guidelines for using these mechanisms are o...
Adaptive Programming - specifying the connections between objects as loosely as possible. Makes programs more flexible, more resilient to change, and more adaptable to varying configurations of classes within a given domain